package org.easystub;

import java.util.Map;
import java.util.HashMap;
import java.lang.reflect.Method;

public class DefaultValues {

    private static Map<Class<?>, Object> emptyReturnValues = new HashMap<Class<?>, Object>();

    static {
        emptyReturnValues.put(Void.TYPE, null);
        emptyReturnValues.put(Boolean.TYPE, Boolean.FALSE);
        emptyReturnValues.put(Byte.TYPE, (byte) 0);
        emptyReturnValues.put(Short.TYPE, (short) 0);
        emptyReturnValues.put(Character.TYPE, (char) 0);
        emptyReturnValues.put(Integer.TYPE, 0);
        emptyReturnValues.put(Long.TYPE, (long) 0);
        emptyReturnValues.put(Float.TYPE, (float) 0);
        emptyReturnValues.put(Double.TYPE, (double) 0);
    }

    public static Object defaultValueFor(Class classType) {
        if (classType.isPrimitive()) {
            return emptyReturnValues.get(classType);
        } else {
            return null;
        }
    }

}
